<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./js/qs.js"></script>
    <script src="./js/axios.js"></script>
    <script src="./js/api.js"></script>
    <script>
        // HTTP协议中
        //  2、请求主体参数 Form Data：+ 服务会主动进行参数解析和加载
        //      2.1、文本参数：Content-Type:application/x-www-form-urlencoded
        //                  参数格式应该是以文本 key=value&key=value 形式定义的参数才会在发送时被服务器解析
        //      2.2、文件参数：Content-Type:multipart/form-data
        //                  参数格式必须以 JS 提供 FormData 方式构建的对象数据，才可以用于文件传输
        //  3、请求主体参数 Request payload：
        //      + 参数以原始文本形式传递到服务器
        //      + 服务器不会对参数数据进行预处理操作
        //      + 需要服务器端自行进行参数解析
        function updateImgFile(){
            // 为 ajax 文件上传提供数据支持
            let fd = new FormData();
            // fd.append(key,value);
            fd.append("name","tom");
            let file = document.querySelector("#img").files[0];
            fd.append("headImage",file);

            api.updateFile(
                fd,
                function(pe){
                    document.querySelector("#loading").value = (pe.loaded/pe.total)*100;
                }
            ).then(function(data){
                console.log(data);
                document.querySelector("#head").src = data.result.path
            })
            .catch(function(){

            })
        }
    </script>
</head>
<body>
    <input type="file" id="img">
    <input type="button" value="图片上传" onclick="updateImgFile()"><br>
    <input type="range" readonly min="0" max="100" value="0" id="loading"><br>
    <img style="width: 300px;height: 300px;" src="" id="head">
</body>
</html>